perm filename SEE.SAI[4,ALS] blob sn#054422 filedate 1973-07-19 generic text, type T, neo UTF8
00010	BEGIN "SEE"
00020	DEFINE ⊂="COMMENT";	⊂ 7,2,73;
00030	
00040	⊂	This program analyses RES.DAT and USE.DAT tables
00050	           and reports on their contents;
00060	
00070	DEFINE TABSIZ="256",TABNUM="16";
00080	DEFINE CR="'15",LF="'12",TB="'11",CRLF="CR&LF";
00090	REQUIRE "BLOCKS.HDR" SOURCE_FILE;
00100	INTEGER CHAN1,CHAN2,EOF,MAX,ZEROC;
00110	INTEGER ARRAY RES,LRN[0:TABSIZ];
00120	INTEGER X1,X2,X3,X4,S1,S2,S3,S4,S1F,S2F,S3F,S4F,I,J,K,
00130	        S1T,S2T,S3T,S4T,OLD,NEW,SUM,F1,F2,F3,F4,T1,T2,T3,T4;
00140	STRING READ1,READ2;
00150	
00160	HEADIN;
00170	CHAN1←1; CHAN2←2;
00180	CLOSE(CHAN1); OPEN(CHAN1,"DSK",'10,10,0,0,0,EOF);
00190	LOOKUP(CHAN1,"LRN.DAT",0);
00200	CLOSE(CHAN2); OPEN(CHAN2,"DSK",'10,10,0,0,0,EOF);
00210	LOOKUP(CHAN2,"RES.DAT",0);
00220	
00230	OUTSTR(TB&"SIGNATURE TABLE SUMMARY as of "&DATIME&CRLF&LF);
00240	
00250	
00260	 OUTSTR(CRLF&"The following tables exist"&CRLF);
00270	OUTSTR("Name"&TB&"Parent"&TB&"Out1 Lev1  Out2 Lev2  "&
00280	       "Out3 Lev3  Out4 Lev4  "&
00290	       "IN1  IN2  IN3  IN4"&CRLF);
00300	SETFORMAT(3,0);
00310	FOR I←0 STEP 1 UNTIL TABNUM DO BEGIN
00320	 IF NAMES[I]=0 THEN DONE;
00330	 J←(IN1[I] LAND '77);K←(IN2[I] LAND '77);
00340	 IF (IN3[I]=0) THEN READ1←"     " 
00350	   ELSE READ1←CVXSTR(INNAM[IN3[I] LAND '77])[1 TO 5];
00360	 IF (IN4[I]=0) THEN READ2←"     " ELSE
00370	   READ2←CVXSTR(INNAM[IN4[I] LAND '77])[1 TO 5];
00380	 OUTSTR(CVXSTR(NAMES[I])&TB&CVXSTR(PARENN[I])&TB&
00390	  CVXSTR(OUT1[I])&CVS(LDB(POINT(9,LEVEL[I],8)))&"  "&
00400	  CVXSTR(OUT2[I])&CVS(LDB(POINT(9,LEVEL[I],17)))&"  ");
00410	IF OUT3[I]=0 THEN OUTSTR("           ") ELSE
00420	OUTSTR(CVXSTR(OUT3[I])&CVS(LDB(POINT(9,LEVEL[I],26)))&"  ");
00430	IF OUT4[I]=0 THEN OUTSTR("           ") ELSE
00440	OUTSTR(CVXSTR(OUT4[I])&CVS(LDB(POINT(9,LEVEL[I],35)))&"  ");
00450	OUTSTR(CVXSTR(INNAM[J])[1 TO 5]&CVXSTR(INNAM[K])[1 TO 5]
00460	  &READ1&READ2&CRLF); END; OUTSTR(LF&"Table ststistics are-"&CRLF&LF);
00470	
00480	
00490	OUTSTR(CRLF&"Name"&TB&"Out1  Find Tare Total   Out2  "&
00500	"Find Tare Total   Out3  Find Tare Total   Out4  "&
00510	"Find Tare Total   Max."&TB&"Zeros"&CRLF&LF);
00520	
00530	FOR I←0 STEP 1 UNTIL TABNUM DO BEGIN
00540	  IF NAMES[I]=0 THEN DONE;
00550	  ARRYIN(CHAN1,LRN[0],TABSIZ);
00560	  ARRYIN(CHAN2,RES[0],TABSIZ);
00570	  S1←S2←S3←S4←S1F←S2F←0; S3F←S4F←S1T←S2T←S3T←S4T←0;
00580	  X1←X2←X3←X4←MAX←ZEROC←0;
00590	  FOR J←0 STEP 1 UNTIL 255 DO BEGIN
00600	    OLD←LDB(POINT(9,RES[J],8)); NEW←LDB(POINT(9,LRN[J],8));
00610	    X1←(OLD LSH 5)+NEW; S1←S1+X1;
00620	    OLD←LDB(POINT(9,RES[J],17)); NEW←LDB(POINT(9,LRN[J],17));
00630	    X2←(OLD LSH 5)+NEW;S2←S2+X2;
00640	    OLD←LDB(POINT(9,RES[J],26)); NEW←LDB(POINT(9,LRN[J],26));
00650	    X3←(OLD LSH 5)+NEW; S3←S3+X3;
00660	    OLD←LDB(POINT(9,RES[J],35)); NEW←LDB(POINT(9,LRN[J],35));
00670	    X4←(OLD LSH 5)+NEW; S4←S4+X4;
00680	
00690	
00700	    K←X1+X2+X3+X4;IF K=0 THEN ZEROC←ZEROC+1;IF K>MAX THEN MAX←K;
00710	
00720	    IF X1>X2 THEN BEGIN "X1X2"
00730	       IF X1>X3 THEN IF X1>X4 THEN BEGIN
00740	          S1F←S1F+X1; S1T←S1T+X2+X3+X4; END ELSE BEGIN
00750	          S4F←S4F+X4; S4T←S4T+X1+X3+X4;END;
00760	       IF X3≥X1 THEN IF X3>X4 THEN BEGIN
00770	          S3F←S3F+X3; S3T←S3T+S1+S2+S4; END ELSE BEGIN
00780	          S4F←S4F+X4; S4T←S4T+X1+X2+X3; END; END "X1X2";
00790	    IF X2≥X1 THEN BEGIN "X2X1"
00800	       IF X2>X3 THEN IF X2>X4 THEN BEGIN
00810	          S2F←S2F+X2; S2T←S2T+X1+X3+X4; END ELSE BEGIN
00820	          S4F←S4F+X4; S4T←S4T+X1+X2+X3; END;
00830	       IF X3≥X2 THEN IF X3>X4 THEN BEGIN
00840	          S3F←S3F+X3; S3T←S3T+X1+X2+X4; END ELSE BEGIN
00850	          S4F←S4F+X4; S4T←S4T+X1+X2+X3; END; END "X2X1";
00860	  END;
00870	  F1←(S1F*100)/S1; F2←(S2F*100)/S2; F3←(S3F*100)/S3; F4←(S4F*100)/S4;
00880	  T1←(S1T*100)/(S1F+S1T); T2←(S2T*100)/(S2F+S2T);
00890	  T3←(S3T*100)/(S3F+S3T); T4←(S4T*100)/(S4F+S4T);
00900	
00910	SETFORMAT(2,0);
00920	OUTSTR(CVXSTR(NAMES[I])&TB&
00930	          CVXSTR(OUT1[I])&TB&CVS(F1)&"  "&CVS(T1));
00940	SETFORMAT(7,0); OUTSTR(CVS(S1)&TB); SETFORMAT(2,0);
00950	OUTSTR(CVXSTR(OUT2[I])&TB&CVS(F2)&"  "&CVS(T2));
00960	SETFORMAT(7,0); OUTSTR(CVS(S2)&TB); SETFORMAT(2,0);
00970	IF OUT3[I]=0 THEN OUTSTR(TB&"             "&TB) ELSE BEGIN
00980	OUTSTR(CVXSTR(OUT3[I])&TB&CVS(F3)&"  "&CVS(T3));
00990	SETFORMAT(7,0); OUTSTR(CVS(S3)&TB); SETFORMAT(2,0); END;
01000	IF OUT4[I]=0 THEN OUTSTR(TB&"             "&TB) ELSE BEGIN
01010	OUTSTR(CVXSTR(OUT4[I])&TB&CVS(F4)&"  "&CVS(T4));
01020	SETFORMAT(7,0); OUTSTR(CVS(S4)&TB); END;
01030	SETFORMAT(4,0);
01040	OUTSTR(CVS(MAX)&TB&CVS(ZEROC)&CRLF);
01050	END;
01060	CLOSE(CHAN1); CLOSE(CHAN2); 
01070	
01080	END "SEE";